﻿using System.ComponentModel;

namespace Moonwish.Foundation.Interfaces
{
    /// <summary>
    /// 基础数据实体类需要继续此接口，write by zhlin 2010-03-10 
    /// </summary>
    public interface IFoundationObject
    {
        /// <summary>
        /// 发布数据。
        /// </summary>
        void PublishAsync();
        /// <summary>
        /// 发布完成事件。
        /// </summary>
        event AsyncCompletedEventHandler PublishCompleted;
        /// <summary>
        /// 作废数据。
        /// </summary>
        void DisableAsync();
        /// <summary>
        /// 作废完成事件。
        /// </summary>
        event AsyncCompletedEventHandler DisableCompleted;
        /// <summary>
        /// 保存修改过的数据。
        /// </summary>
        void SaveChangedAsync();
        /// <summary>
        /// 保存完成事件。
        /// </summary>
        event AsyncCompletedEventHandler SaveChangedCompleted;

        /// <summary>
        /// 数据状态名称。
        /// </summary>
        string StatusName { get; }
    }
}
